浅谈千行代码bug率计算
一. 目的
为了度量产品质量,通过这一数据督促开发提高代码质量,提高产品质量。
二. 什么是千行代码Bug率?
参考资料:https://cmmiinstitute.com/
定义:千行代码Bug率,其计算方式为:bug数/代码行数*1000;
度量的标准:千行代码Bug率数值越小质量越好;
CMMI级别中做出了相关的指标规定:
CMM1级 11.95‰
CMM2级 5.52‰
CMM3级 2.39‰
CMM4级 0.92‰
CMM5级 0.32‰
三. 设计&实现
功能:计算千行代码bug率
项目代码总行数计算:
输入:git代码地址,项目名称
返回:项目代码行数(去除空行和注释)
多次迭代代码行数计算:
输入:git地址,分支名称
返回:项目新增和修改代码的行(去除空行和注释)数
千行代码bug率的
输入:bug数,git地址
返回:千行代码bug率结果
5.工具代码如下:
# -*- coding=utf-8 -*-
import os
import re
import numpy as np
from matplotlib import pyplot as plt
BASE = os.path.join(os.path.dirname(os.path.abspath(__file__)))
def main():
number = input("请输入数字:\n"
"1、计算千行代码bug率项目代码总行数计算 \n"
"2、多次迭代代码行数计算\n"
"3、千行代码bug率的\n")
if number not in ["1", "2", "3"]:
print("非法输入, 请重试")
return
if number == "1":
github_url = input("请输入github地址:")
try:
print(f"{github_url}")
os.system(f"git clone '{github_url}'")
dir_name = re.match(r".*?/(.*?).git", github_url).group(1)
total_count = handle_py_file_total_count(dir_name)
print(f"该项目的有效行数为: {total_count}")
return
except Exception as ex:
print(f"您输入的地址错误! {ex} ")
return
elif number ==